﻿//using Kingdee.BOS.App.Data;
//using Kingdee.BOS.Core.DynamicForm;
//using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
//using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
//using Kingdee.BOS.Core.List;
//using Kingdee.BOS.Core.List.PlugIn;
//using Kingdee.BOS.Orm.DataEntity;
//using Kingdee.BOS.Util;
//using Newtonsoft.Json.Linq;
//using System;
//using System.Collections.Generic;
//using System.ComponentModel;
//using System.IO;
//using System.Linq;
//using System.Net;
//using System.Net.Http;
//using System.Text;
//using System.Threading.Tasks;

//namespace WSDZ.KM.ZH.SalInvoiceDownloadFile6
//{
//    [Description("销售增值税专票下载文件"), HotUpdate]
//   public class SalVatSpecialInvoiceDownloadFile : AbstractListPlugIn
//    {
//        public string btype { get; set; } = "销售增值税专票下载文件";
//        public string logType { get; set; } = "销售增值税专票下载文件";
//        public string directory { get; set; } ="";
//        public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
//        {
//            base.AfterBarItemClick(e);
//            //下载发票文件
//            if (e.BarItemKey.EqualsV1("btnDownloadInvoiceFile"))
//            {
//                try
//                {
//                    var lv = this.View as IListView;
//                    if (lv == null)
//                    {
//                        View.ShowErrMessage($@"无数据!!!");
//                        return;
//                    }
//                    var selectedRows = lv.SelectedRowsInfo;
//                    if (selectedRows == null || selectedRows.Count == 0)
//                    {
//                        this.View.ShowMessage("当前没有行被选中！");
//                        return;
//                    }
//                    List<int> ids = selectedRows.Select(x => x.PrimaryKeyValue.ToStringV1().ToInt32V1()).Distinct().ToList();
//                    if (ids.Count<1)
//                    {
//                        View.ShowErrMessage($@"选择行为空!!!");
//                        return;
//                    }
//                    DownloadFiles(ids);
//                }
//                catch (Exception ex)
//                {
//                    View.ShowErrMessage($@"异常SI001【{ex.Message}】");
//                    return;
//                }
//            }
//        }
//        public void DownloadFiles(List<int> idList)
//        {
//            List<InvoiceData> dataList = new List<InvoiceData>();
//            int size = 2000;
//            int icount = idList.Count <= size ? 1 : idList.Count % size > 0 ? idList.Count / size + 1 : idList.Count / size;
//            for (int i = 0; i < icount; i++)
//            {
//                List<int> ids = idList.Skip(size * i).Take(size).ToList();
//                string sql = $@"/*dialect*/ select 
//id=fp.FID
//,billNo=fp.FBILLNO
//,networkAddress=fpO.FPDFURLCOPY
//from T_IV_SALESIC fp
//left join T_IV_SALESIC_O fpO on fp.FID=fpO.FID
//where fp.FID in ({string.Join(",", ids)})
//and ISNULL(fp.FBILLNO,'')<>''
//and ISNULL(fpO.FPDFURLCOPY,'')<>''";
//                DynamicObjectCollection datas = DBUtils.ExecuteDynamicObject(Context,sql);
//                if (datas!=null&&datas.Count>0)
//                {
//                    List<InvoiceData> dlist = datas.DynamicObjectCollectionToDataList<InvoiceData>();
//                    dataList.AddRange(dlist);
//                }
//            }
//            if (dataList.Count<1)
//            {
//                View.ShowErrMessage($@"不存在符合条件的发票单!!!");
//                return;
//            }
//            List<string> paralist = dataList.Select(x => $@"{x.billNo}：{x.networkAddress}").ToList();
//            string parastr = string.Join("【||】", paralist);
//            DynamicFormShowParameter formPa = new DynamicFormShowParameter();
//            //formPa.FormId = "UUEI_ChoseInvoiceDirectoryForm";
//            formPa.FormId = "RLKX_ChoseInvoiceDirectoryForm";//正式环境
//            formPa.CustomParams.Add("parastr", parastr);
//            View.ShowForm(formPa);
//        }
 
//    }
//    public class InvoiceData
//    {
//        public int id { get; set; }
//        public string billNo { get; set; }
//        public string networkAddress { get; set; }
//        public string filePath { get; set; }
//        public bool status { get; set; }
//        public string msg { get; set; }
//    }

//}
